import { adapter as http } from '@zh/common-utils/http'

// 机构人员树接口////////////////////////////////////////////////////////////////////////////////////////////

/**
 * 查询机构
 * @param {*} topUnitId 顶级机构id, topUnitName 顶级机构名称
 * @returns
 */
export function getCrumbsByTopUnit (topUnitId, topUnitName) {
  return http.get(`/user/getCrumbsData/${topUnitId}/${topUnitName}`)
}

/**
 * 根据上级机构ID查询机构和机构所属人员列表
 * @param {*} parentId 上级id
 * @returns
 */
export function getUnitAndUserListByParentId (parentId, containSelf, isIncludChildren,label,extend) {
  return http.get(`/user/list/user/by/parentId?parentId=${parentId}&containSelf=${containSelf}&isIncludChildren=${isIncludChildren}&label=${label}&extend=${extend}`)
}

export function getAllUserOfUnit (unitId, limit, selectedCount) {
  return http.get(`/user/list/user/limit?parentId=${unitId}&curNum=${selectedCount}&limitNum=${limit}`, {
    showLoading: false
  })
}

/** 根据机构ID获取人员ID
 * @param {*} ids
 * @return function
 */
export function getTreeUserListByUnitIds (unitIds, name = '', label = '') {
  return http.get(`/organ/list/user?organId=${unitIds}&name=${name}&label=${label}`)
}

/**
 * 根据人员ID查询人员信息
 * @param {*} id   userIds
 * @returns
 */
export function getTreeUnitUsersByUserIds (userId,deep) {
  return http.post(`/user/list/by/ids`, { userIds: userId ? userId.split(',') : [],deep})
}

/**
* 搜索-模糊查询（机构人员树）
* @param {*} keyword 关键字
* @returns
*/
export function getTreeUserListByName (userName, containSelf, topUnitId,label,extend,tag = 'tag') {
  return http.get(`/user/list/user/by/condition?userName=${userName}&topUnitId=${topUnitId}&tag=${tag}&containSelf=${containSelf}&label=${label}&extend=${extend}`)
}

// 机构树接口////////////////////////////////////////////////////////////////////////////////////////////////

/**
 * 根据上级机构ID查询机构列表
 * @param {*} parentId 上级id
 * @returns
 */
export function getUnitListByParentIdAndNeedUnitType (parentId, needUnitType,label,extend) {
  return http.get(`/unit/list/unit/by/parentId/${parentId}?needUnitType=${needUnitType}&label=${label}&extend=${extend}`)
}

/**
* 搜索-模糊查询(机构树)
* @param {*} keyword 关键字
* @returns
*/
export function getTreeUnitLisByNameOrCode (unitName, topUnitId = '',label,extend, tag = '') {
  return http.get(`/unit/list/unit/by/condition?unitName=${unitName}&topUnitId=${topUnitId}&tag=${tag}&label=${label}&extend=${extend}`)
}

/**
 * 根据机构ID查询机构信息
 * @param {*} id   userIds
 * @returns
 */
export function getTreeUnitListByUserIds (unitId,deep) {
  return http.post(`/unit/list/by/ids`, { unitIds: unitId ? unitId.split(',') : [] ,deep})
}

// 角色接口///////////////////////////////////////////////////////////////////////////////

/**
 * 用户角色下拉
 */
export function getRoleList (roleName = '') {
  return http.get(`/role/list/all?roleName=${roleName}`)
}

// 应用接口/////////////////////////////////////////////////////////////////////////////
/**
 * 应用下拉
 */
export function getApplicationList (applicationName = '') {
  return http.get(`/app/user/list?applicationName=${applicationName}`)
}

// 机构分组////////////////////////////////////////////////////////////////////////////////////

/**
 * 初始化树-懒加载
 * @param {*} id   机构ID
 * @returns
 */
export function getUnitTreeNodesByParentId (parentId) {
  return http.post('/system/SysUnitinfo/unitTableTreeLazy', parentId)
}

/**
 * 返回分组信息
 * @param {*} params
 * @returns
 */
export function getGroupList (params) {
  return http.post('/system/SysGroups/groupsList', params)
}

/**
 * 根据分组ID查询分组详情
 * @param {*} id   分组ID
 * @returns
 */
export function getGroupAndUnitsById (groupId) {
  return http.get(`/system/SysGroups/select/${groupId}`)
}

/**
 * 根据id列表获取人员信息
 */
export function listUserUnitTreeReverse (ids) {
  return http.get('/system/unituserExt/getTreeUserListByIds?userIds=' + ids.toString())
}

export function listUnitUser (ids) {
  return http.get(`/system/SysUnituser/getUnitUserOrSubUserListByUnitIds/1?unitIds=${ids}`)
}
